<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=File-List href="./teacher_files/filelist.xml">
<title>To the Teacher</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author> </o:Author>
  <o:Template>Normal</o:Template>
  <o:LastAuthor> </o:LastAuthor>
  <o:Revision>3</o:Revision>
  <o:TotalTime>0</o:TotalTime>
  <o:Created>2005-01-15T17:39:00Z</o:Created>
  <o:LastSaved>2005-04-18T18:22:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>852</o:Words>
  <o:Characters>4860</o:Characters>
  <o:Company> </o:Company>
  <o:Lines>40</o:Lines>
  <o:Paragraphs>9</o:Paragraphs>
  <o:CharactersWithSpaces>5968</o:CharactersWithSpaces>
  <o:Version>9.2720</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
  <w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery>
  <w:UseMarginsForDrawingGridOrigin/>
  <w:Compatibility>
   <w:FootnoteLayoutLikeWW8/>
   <w:ShapeLayoutLikeWW8/>
   <w:AlignTablesRowByRow/>
   <w:ForgetLastTabAlignment/>
   <w:LayoutRawTableWidth/>
   <w:LayoutTableRowsApart/>
  </w:Compatibility>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
@font-face
	{font-family:"Microsoft Sans Serif";
	panose-1:2 11 6 4 2 2 2 2 2 4;
	mso-font-charset:0;
	mso-generic-font-family:swiss;
	mso-font-pitch:variable;
	mso-font-signature:1627421663 -2147483648 8 0 66047 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
p.MsoTitle, li.MsoTitle, div.MsoTitle
	{margin:0in;
	margin-bottom:.0001pt;
	text-align:center;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	font-weight:bold;
	mso-bidi-font-weight:normal;}
a:link, span.MsoHyperlink
	{mso-style-parent:"";
	color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
</head>

<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>

<div class=Section1>

<table border=1 cellspacing=0 cellpadding=0 width="75%" style='width:75.0%;
 margin-left:66.2pt;border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
 mso-padding-alt:0in 5.4pt 0in 5.4pt'>
 <tr>
  <td width=928 valign=top style='width:696.35pt;border:solid windowtext .5pt;
  padding:0in 5.4pt 0in 5.4pt'>
  <p class=MsoTitle align=left style='margin-left:1.0in;text-align:left'><span
  style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  font-weight:normal;mso-bidi-font-weight:bold'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <div align=center>
  <table border=1 cellspacing=0 cellpadding=0 width=432 style='width:4.5in;
   border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;
   mso-padding-alt:0in 5.4pt 0in 5.4pt'>
   <tr>
    <td width=492 valign=top style='width:368.75pt;border:solid windowtext .5pt;
    padding:0in 5.4pt 0in 5.4pt'>
    <p class=MsoTitle align=left style='text-align:left'><span
    style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
    font-weight:normal;mso-bidi-font-weight:bold'><a href="QiPrograms.zip">Download
    Programs</a> <o:p></o:p></span></p>
    </td>
    <td width=492 valign=top style='width:368.75pt;border:solid windowtext .5pt;
    border-left:none;mso-border-left-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'>
    <p class=MsoTitle align=left style='text-align:left'><span
    style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
    font-weight:normal;mso-bidi-font-weight:bold'><a href="contents.htm">Go to
    Contents Page</a><o:p></o:p></span></p>
    </td>
   </tr>
  </table>
  </div>
  <p class=MsoTitle align=left style='margin-left:1.0in;text-align:left'><span
  style='font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  font-weight:normal;mso-bidi-font-weight:bold'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-top:0in;margin-right:-.35pt;
  margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt;text-align:center;
  mso-outline-level:1'><span style='font-size:18.0pt;mso-bidi-font-size:10.0pt;
  font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>To
  the Teacher</span><b style='mso-bidi-font-weight:normal'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><o:p></o:p></span></b></p>
  <p class=MsoNormal align=center style='margin-top:0in;margin-right:-.35pt;
  margin-bottom:0in;margin-left:.5in;margin-bottom:.0001pt;text-align:center'><b
  style='mso-bidi-font-weight:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>To
  the prospective teacher contemplating teaching functional programming the
  question must be �Why Qi?�<span style="mso-spacerun: yes">� </span>To this
  question, there are several answers.<span style="mso-spacerun: yes">�
  </span>First Qi is a <i style='mso-bidi-font-style:normal'>clear </i>language,
  at least syntactically, with a syntax that extends to less than a page of
  BNF.<span style="mso-spacerun: yes">�� </span>The syntax is modeled after
  Edinburgh Prolog</span><!--[if supportFields]><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-begin'></span>
  XE &quot;</span><b style='mso-bidi-font-weight:normal'><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>Prolog</span></b><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-end'></span></span><![endif]--><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>,
  which means that students going on to learn Prolog after having learnt Qi
  have a distinct advantage over students approaching Prolog from any other direction.<span
  style="mso-spacerun: yes">�� </span>Many of the issues regarding backtracking
  and choice points can be met in Qi in a form that is clean, tractable and
  easy to follow and lays a foundation for understanding the less tractable
  Prolog cut.<span style="mso-spacerun: yes">� </span><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Second,
  Qi offers the choice of using or dispensing with static typing.<span
  style="mso-spacerun: yes">�� </span>The world of functional programming is
  divided into two camps (luckily, unarmed); protagonists of untyped languages,
  of which Lisp is the foremost recognised system; and defenders of typed
  languages of which Standard ML is perhaps the most widely used.<span
  style="mso-spacerun: yes">�� </span>Programmers in Lisp defend the
  breathtaking flexibility of Lisp that has allowed it to survive 40 years of
  progress and distrust what they view as the control freak mentality behind
  static typing.<span style="mso-spacerun: yes">�� </span>Alan Perlis speaks
  for the Lisp community when he says<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>�<i
  style='mso-bidi-font-style:normal'>It is better to have 100 functions operate
  on one data structure than to have 10 functions operate on 10 data structures</i>.�<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Programmers
  in SML often regard Lisp programming as barely acceptable, open to error in a
  way that prevents programming being placed on a reliable footing.<span
  style="mso-spacerun: yes">� </span>The debate is often raged with surprising
  vehemence in user groups and in coffee rooms.<span style="mso-spacerun:
  yes">�� </span>But any preference for one or the other depends on a value</span><!--[if supportFields]><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-begin'></span> XE &quot;</span><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>value</span></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  \b </span><![endif]--><!--[if supportFields]><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-end'></span></span><![endif]--><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style="mso-spacerun: yes">�</span>judgement, and one way to arrive at a
  mature understanding of the advantages of each position is to work in an
  environment that can support both paradigms.<span style="mso-spacerun: yes">�
  </span>This is exactly what Qi provides.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>The
  Qi type system is deductively presented as an open source program using
  explicit logic rules.<span style="mso-spacerun: yes">�� </span>No other
  language offers this degree of transparency and control over the type
  discipline of the language.<span style="mso-spacerun: yes">� </span>For
  beginning students, observing and interacting with the Qi type checker is an
  effective way of appreciating the power of logic in computer science.<span
  style="mso-spacerun: yes">� </span>For researchers, this degree of control
  allows them to experiment with type disciplines in a way that no other
  functional language will support.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Finally,
  Qi inherits and enhances the excellent Common Lisp environment, giving
  students long-term access to all the riches of Lisp without weighing them
  down initially with CARs and CDRs.<span style="mso-spacerun: yes">�
  </span>Many of the uglier features of Lisp; its use of NIL for <i
  style='mso-bidi-font-style:normal'>false</i>, the lack of pattern-matching
  and the discrepancies between Lisp and lambda calculus in regard to currying
  and partial applications, are eliminated in Qi.<span style="mso-spacerun:
  yes">� </span><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>If
  this answers the question of �Why Qi?�; the next question must be �How can
  this book be taught?�.<span style="mso-spacerun: yes">�� </span>Qi is
  available as source code that can be downloaded from the Net. </b>This code can be loaded into
  CLisp.<span style="mso-spacerun: yes">� </span>CLisp itself runs under almost
  every OS and with Qi installed takes only a paltry 2Mb of RAM.<span
  style="mso-spacerun: yes">� </span>For teaching, there is a complete set of Powerpoint
  slides that can be downloaded from the same site.<span style="mso-spacerun:
  yes">�� </span><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><i
  style='mso-bidi-font-style:normal'><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'>Functional Programming in </span></i><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Qi<i
  style='mso-bidi-font-style:normal'> </i>is both an introduction to a new
  language and an illustration of the language�s main features through a series
  of topics that are central to computer science</span><!--[if supportFields]><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-begin'></span> XE &quot;</span><b style='mso-bidi-font-weight:
  normal'><span lang=EN-GB style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman";mso-ansi-language:EN-GB'>inheritance</span></b><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot;
  </span><![endif]--><!--[if supportFields]><span style='font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><span style='mso-element:field-end'></span></span><![endif]--><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>.<span
  style="mso-spacerun: yes">� </span>Part I of the book introduces the untyped
  core language, which also covers recursion, list handling, non-determinism,
  procedural attachment, grammars and parsing</span><!--[if supportFields]><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-begin'></span> XE &quot;</span><span lang=EN-GB
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman";
  mso-ansi-language:EN-GB'>intelligent agents</span><span style='font-family:
  "Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>&quot; </span><![endif]--><!--[if supportFields]><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><span
  style='mso-element:field-end'></span></span><![endif]--><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>.<span
  style="mso-spacerun: yes">� </span>The core language is suitable as
  half-semester introduction to functional programming. At Stony Brook, part I
  was taught as a component of the first year foundation course in computer
  science.<span style="mso-spacerun: yes">� </span>The application programs in
  part I are chosen to illustrate key programming features of untyped <span
  style='mso-bidi-font-style:italic'>Qi</span> and are deliberately kept short.
  <o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Part
  II of the book covers the use of types in <span style='mso-bidi-font-style:
  italic'>Qi</span> and the theory of their use.<span style="mso-spacerun:
  yes">� </span>This part includes the use of sequent rules to define types,
  lambda calculus and the compilation of <span style='mso-bidi-font-style:italic'>Qi</span>
  into lambda calculus, and the type theory of <span style='mso-bidi-font-style:
  italic'>Qi</span>.<span style="mso-spacerun: yes">�� </span>The material here
  is more theoretical, and applications are less in evidence.<span
  style="mso-spacerun: yes">�� </span>Parts I and II would be taught together
  in an introduction to functional programming.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Part
  III of the book deals with more advanced applications in automated
  reasoning.<span style="mso-spacerun: yes">� </span>The application programs
  in this part are larger and include complete theorem-provers for
  propositional and first-order logic, a simple expert system and a multi-agent
  model of a transport system.<span style="mso-spacerun: yes">� </span>Unlike
  part I, not all the code for every program is included in these pages.<span
  style="mso-spacerun: yes">� </span>The book explains how these programs work
  and leaves the code online for the student to study.<span
  style="mso-spacerun: yes">� </span>However the code for the propositional
  theorem-prover, the expert system and a multi-agent model are included in
  their entirety.<span style="mso-spacerun: yes">� </span><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>Since
  expert systems and a multi-agents are large and significant fields in their
  own right, part III is only a taster for people interested in these
  areas.<span style="mso-spacerun: yes">� </span>The treatment is deep enough
  to show the power of <span style='mso-bidi-font-style:italic'>Qi</span> in
  these areas, and, as in the rest of the book, further reading is included at
  the end of each chapter for those who want to study further.<o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>
  <p class=MsoNormal style='margin-top:0in;margin-right:-.35pt;margin-bottom:
  0in;margin-left:.5in;margin-bottom:.0001pt;text-align:justify'><span
  style='font-family:"Microsoft Sans Serif";mso-bidi-font-family:"Times New Roman"'>There
  are over 100 exercise questions in this book. Questions that are marked with
  a single star * are more challenging. Double starred ** questions are
  suitable for final year projects or graduate proposals.<span
  style="mso-spacerun: yes">� </span>Answers are not included, since the
  teacher may want to set these as part of the coursework.<span
  style="mso-spacerun: yes">� </span>The questions have no marks attached, so
  that the teacher has the discretion of choosing the weighting.<o:p></o:p></span></p>
  <p class=MsoNormal align=center style='margin-right:-.35pt;text-align:center;
  mso-outline-level:1'><![if !supportEmptyParas]>&nbsp;<![endif]><span
  style='font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:"Microsoft Sans Serif";
  mso-bidi-font-family:"Times New Roman"'><o:p></o:p></span></p>
  </td>
 </tr>
</table>

<p class=MsoNormal><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></p>

</div>

</body>

</html>
